package com.niiwoo.civet.user.service.local.portraitAuth;

import com.niiwoo.civet.user.enums.PortraitChannelEnum;
import com.niiwoo.civet.user.enums.UserDataStatusEnum;
import com.niiwoo.civet.user.service.local.portraitAuth.dto.AuthInfoDTO;
import com.niiwoo.civet.user.service.local.portraitAuth.dto.AuthResultDTO;

public interface PortraitAuthOperation {

    <T extends AuthInfoDTO> boolean saveAuthInfo(T authInfo);

     UserDataStatusEnum.PortraitAuthStatus auth(String userId);

     boolean invalidateUnAuthInfo(String userId);

     <U extends AuthResultDTO> U getAuthResult(String userId, boolean isRecent, Class<U> cls);

     PortraitChannelEnum getSupportChannel();

}
